1. Field of the Invention
The present invention relates generally to a system and method for displaying images of objects. More particularly, the present invention relates to graphical user interfaces providing variably-transparent (transparent/semi-transparent) layered objects and optimizing the degree of transparency for maximum user and system performance.
2. Related Art
Graphical User Interfaces (GUIs) provide a gateway between users and virtually all types of application programs for visualizing and manipulating application-specific objects or information. A problem with GUIs has been efficiently displaying a number of objects (e.g., windows, menus, and tool palettes) within a limited display (e.g., computer screen or terminal) area. Indeed, the rather limited amount of display real estate relative to the increasing amount of information to be displayed presents a real and prevailing challenge to GUI design.
There have been generally two broad strategies to address the problem. The first entails a space multiplexing strategy. That is, the screen is partitioned (or tiled) into a number of non-overlapping windows. The second is a time multiplexing (or temporal sequencing) strategy. With these types of strategies, windows are arranged on top of one another, with only the top-most window being visible at any given time and a mechanism (e.g., a mouse interface) is provided to rapidly change which window is visible.
Conventionally, most GUIs have utilized hybrid approaches rather than either one of these strategies exclusively. For example, conventional GUIs typically provide both static or permanently visible windows and dynamic menus which are only visible by user selection or request (e.g., drop-down, pop-up, pull-down, and pull-out menus).
A disadvantage of any of these approaches is that some displayed images of objects (or displayed information) are completely or partially obscured, thereby blocking the context in which the user is working. That is, all objects that are below or behind a fully opaque window or menu are not visible to the user. Thus, when an opaque rectangular pull-down menu (foreground object) containing a list of user options is displayed, all object images (background objects) falling behind the menu are obstructed. This invariably has an adverse effect on the utility of conventional GUIs.
The extent of the disruption to the user is directly related to the persistence of the foreground object (i.e., how long the object remains displayed). In the case of menu item selection, obstruction is short-term. However, in the case of overlapping windows, for example, the length of time this obstruction exists is long-term. Accordingly, the visual disruption is persistent and highly problematic.
Recent advances in technology make it possible and often desirable to use variably-transparent (transparent/semi-transparent) windows, menus, or other objects such that the user can "see through" to underlying layers. Fully transparent interfaces include the Heads Up Displays (HUDs) used in aviation and the Clearboard system. See, Ishii et al., Clearboard: A seamless medium for shared drawing and conversation with eye contact, Proceedings of CHI'92, Monterey, Calif., 525-532. In the HUD systems, aircraft instrumentation (a graphical computer interface) is superimposed on the external real world scene, using specially engineered windshields. In the Clearboard system, a large drawing surface is overlaid on a video image of the user's collaborative partner, where the superimposed images are presented as a "drafting" table.
Similarly, in other rare instances, GUIs have also used semi-transparent (partially transparent or translucent) techniques, such as stippling. These techniques generally allow foreground object images (e.g., menus, tool palettes, work areas, or windows) to be superimposed over background object images, while permitting the background object images to remain visible to the user. Applications using such techniques include video overlays (e.g., sport scores overlaid on the game in play) and "3-D silk cursors." See, Zhai et al., The "silk cursor:" Investigating transparency for 3D target acquisition, Proceeding of CHI'94, Boston, Mass., 459-464.
A similar application involving semi-transparent menus (a class of interactive widgets) which do not completely block other object images on a computer display is disclosed in U.S. Pat. No. 5,283,560 to Bartlett. As such, images falling below the menus remain visible, thus making the menus less intrusive during menu operation.
Accordingly, variably-transparent GUIs allow multiple object image "layers" to be simultaneously observed. Correspondingly, these interfaces are instrumental in providing integration between user tool space and task space, between multiple tools, or between different object images. For example, such interfaces allow the user to interact with foreground objects, carry out activities, or change parameters that are ultimately reflected in a background layer (e.g., color changes, font changes, and view changes). Correspondingly, these GUIs provide the user with a more efficient mechanism to perform operations without being overly disruptive.
While solving one problem, these conventional variably-transparent GUIs create others, namely visual interference (i.e., reduced visibility and legibility). For example, when a foreground object (e.g., a widget) is made semi-transparent, object images below the widget tend to interfere with the legibility of the widget itself.
The degree of visual interference is generally a function of transparency. The higher the transparency of the foreground object, the higher the severity of the visual interference, wherein completely transparent foreground objects have the maximum interference from the background. As the degree of foreground transparency reduces toward opaque, the degree of visual interference is also reduced. This, however, mitigates the very advantage of variable-transparency since it significantly diminishes visibility of background object images.
Visual interference is particularly severe with foreground and background objects of similar colors (e.g., the color(s) of menu items closely matching the color(s) of background object images below the menu). Since any color may appear in the background (created/controlled by the application user), this can happen no matter which color is chosen for the text (icons etc.) on the widgets created by the application designer. Accordingly, visual interference generally precludes use of variable-transparency with a wide range of practical applications.
Some GUIs have simply circumvented the issue by relying on variations of conventional approaches (e.g., tiled opaque menus and windows). For the most part, those GUIs which have incorporated any form of transparency have not measured, specified, or determined what the levels of transparency should be implemented. Most have taken one of two approaches. Some GUIs utilize a predetermined transparency level of 100% clear which is not adjustable. See, Stone et al., The Movable Filter as a User Interface Tool, Proceedings of CHI'94, Boston, Mass., 306-312; Bier et al., Toolglass and magic lenses: The see-through interface, Proceedings of SIGGRAPH'93, Anaheim, Calif., 73-80; Bier et al., A Taxonomy of See-Through Tools, Proceedings of CHI'94, Boston, Mass., 358-364. Alternatively, the system designer typically makes an arbitrary decision and fixes the transparency level at a predetermined value.
Neither of these approaches, however, maximize user or system performance. Many such GUIs do not provide the user with control over the predetermined settings and therefore the transparency level cannot be altered in accordance with user or application requirements. In those instances where the user is provided some control, it is rarely apparent what the optimal settings should be or how these controls are set (i.e., what user interface mechanism is used to change or reset transparency levels). Moreover, the user is additionally burdened with another task (i.e., controlling/adjusting the transparency level) unrelated to the application/task goals, thus ultimately have a potential adverse effects on user efficiency and system performance.